home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Format CD 23
/
Amiga Format AFCD23 (Feb 1998, Issue 107).iso
/
+look_here_1st!+
/
reader_requests
/
alienbreed3d2
/
print.s
< prev
next >
Wrap
Text File
|
1997-11-28
|
1KB
|
77 lines
***************************************************
* Print null-terminated text pointed to by a0 *
* at coords (d0,d1) *
***************************************************
Print:
movem.l a0-a3/d0-d3,-(sp)
move.l FASTBUFFER,a1
muls.w #ScreenWidth,d1
asl.l #3,d1
ext.l d0
add.l d0,d0
move.l d0,d2
add.l d0,d0
add.l d2,d0
add.l d0,d1
lea (a1,d1.l),a1
move.l Font,a2
.NextChar:
move.l a1,a3
add.l #6,a1
move.w #0,d0
move.b (a0)+,d0
beq.s .DoneText
lsl.w #6,d0
move.w #0,d3
.NextYPoint:
move.w #0,d2
.NextXPoint:
move.b (a2,d0.w),d1
beq.s .NoPoint
move.b #255,(a3,d2.w)
.NoPoint:
addq.w #1,d0
addq.w #1,d2
cmp.w #8,d2
blt.s .NextXPoint
add.l #ScreenWidth,a3
addq.w #1,d3
cmp.w #8,d3
blt.s .NextYPoint
bra.s .NextChar
.DoneText:
movem.l (sp)+,a0-a3/d0-d3
rts
***************************************
* Print value passed in PVal at *
* coords passed in PXpos and PYos *
***************************************
PrintVal:
movem.l a0-a1/d0-d4,-(sp)
move.l PVal,d0
move.l PXpos,d1
move.l PYpos,d2
move.l #.NumBuffer+8,a0
move.l #.CharBuffer,a1
move.w #7,d4
.MakeTextLoop:
move.b d0,d3
and.w #$000f,d3
move.b (a1,d3.w),-(a0)
lsr.l #4,d0
dbra d4,.MakeTextLoop
move.l d1,d0
move.l d2,d1
bsr Print
movem.l (sp)+,a0-a1/d0-d4
rts
.NumBuffer: ds.b 8
dc.b 0
.CharBuffer: dc.b "0123456789ABCDEF"
even
PXpos: dc.l 0
PYpos: dc.l 0
PVal: dc.l 0